চার্টের পারফরম্যান্স টিউনিং টিপস

Web Development - অ্যাঙ্গুলার হাই চার্ট (Angular High Charts) - Performance অপ্টিমাইজেশন |
3
3

Highcharts এর মতো ডেটা ভিজ্যুয়ালাইজেশন লাইব্রেরির ব্যবহারকারীদের একটি গুরুত্বপূর্ণ বিষয় হলো পারফরম্যান্স অপ্টিমাইজেশন। বিশেষ করে বড় ডেটাসেট বা ডায়নামিক ডেটা ব্যবহার করার সময় চার্টের লোডিং স্পিড এবং রেন্ডারিং সময় অনেক গুরুত্বপূর্ণ হয়ে দাঁড়ায়। এখানে কিছু কার্যকরী টিপস দেওয়া হলো যেগুলি Highcharts এর পারফরম্যান্স টিউনিং করতে সহায়ক।


1. ডেটা সাইজ কমানো

Highcharts চার্টে অনেক ডেটা প্রদর্শন করলে তা চার্টের পারফরম্যান্সকে প্রভাবিত করতে পারে। অতিরিক্ত পয়েন্ট বা সিরিজের ডেটা লোড না করার চেষ্টা করুন।

  • Data Clustering: আপনি ডেটাকে ক্লাস্টার করে ছোট অংশে ভাগ করতে পারেন, বিশেষ করে টাইম সিরিজ ডেটাতে, যাতে শুধুমাত্র গুরুত্বপূর্ণ পয়েন্ট গুলি প্রদর্শিত হয়।
  • Data Reduction: দীর্ঘ সময়ের ডেটাকে সামান্য ফিল্টার করে বা রিডিউস করে উপস্থাপন করা যায়, উদাহরণস্বরূপ, প্রতি ঘন্টায় বা দিনের গড় মান।

উদাহরণ: 1000 পয়েন্টের মধ্যে প্রতিটি দশম পয়েন্ট প্রদর্শন:

data: data.filter((value, index) => index % 10 === 0)

2. ক্যাশিং এবং কম্পাইলড কোড ব্যবহার

Highcharts কিছু অংশ যেমন, চার্টের লেআউট এবং কনফিগারেশন ক্যাশে রাখতে পারে, যাতে একাধিক রেন্ডারিং এ একই কনফিগারেশন বারবার কম্পাইল না হয়।

  • Use Highcharts Boost Module: Highcharts Boost Module ব্যবহার করলে 1 মিলিয়ন বা তার বেশি ডেটা পয়েন্টের জন্য পারফরম্যান্স অনেক উন্নত হয়।
Highcharts.getOptions().global.useUTC = false; // UTC সমর্থন বন্ধ করুন

এটি জাভাস্ক্রিপ্ট এ কোডের দ্রুত অ্যাক্সেসের জন্য সুবিধা দেয়।


3. ডেটা পয়েন্ট কমানোর জন্য spline এবং line সিরিজ ব্যবহার করা

Highcharts এর মধ্যে spline বা line সিরিজ ব্যবহার করলে, অনেক ডেটা পয়েন্ট কমিয়ে ভিন্ন ভিন্ন কিউবিক বেজিয়ার (Cubic Bezier) কার্ভ ব্যবহার করে পারফরম্যান্স বাড়ানো যেতে পারে। এতে অনেক ডেটা পয়েন্টে কোন সমস্যা ছাড়াই একটি স্নিগ্ধ রেসপন্স পাওয়া যায়।

series: [{
  type: 'spline', // ডেটার স্নিগ্ধ এবং কম্প্যাক্ট প্রদর্শন
  data: dataPoints
}]

এটি চার্টকে ফ্লুইড এবং কম্প্যাক্ট রাখবে, ফলে দ্রুত লোড হবে।


4. Chart Rendering Optimization: highcharts এর renderer অপশন ব্যবহার

Highcharts এ কিছু সময় SVG রেন্ডারিং করে রেন্ডারিং সময় বৃদ্ধি পায়, বিশেষ করে বড় ডেটাসেট থাকলে। এতে ভালো পারফরম্যান্সের জন্য Canvas রেন্ডারিং ব্যবহার করা যেতে পারে। এছাড়াও, রেন্ডারিংটি WebGL ব্যবহার করেও দ্রুত করা যেতে পারে।

WebGL এবং Canvas রেন্ডারিং সক্ষম করার জন্য:

chart: {
  type: 'scatter',
  renderTo: 'container',
  backgroundColor: 'transparent',
  events: {
    load: function () {
      this.series[0].setData(data); // ডেটা সরবরাহ
    }
  }
}

5. Point Markers হ্রাস করা

Highcharts-এ ডিফল্টরূপে point markers ব্যবহৃত হয়। যদি আপনার চার্টে অনেক ডেটা পয়েন্ট থাকে, তবে এটি পারফরম্যান্সে প্রভাব ফেলতে পারে। আপনি point markers বন্ধ করে বা রেন্ডার করা পয়েন্ট সংখ্যা সীমিত করতে পারেন।

plotOptions: {
  scatter: {
    marker: {
      enabled: false // পয়েন্ট মার্কার বন্ধ করা
    }
  }
}

6. Tooltip Optimization

টুলটিপ একাধিক ডেটা পয়েন্টের উপর লোড হয়, বিশেষ করে বড় ডেটাসেটে। যদি আপনি টুলটিপের আচরণ কাস্টমাইজ করতে চান, যেমন শুধুমাত্র নির্দিষ্ট অংশে দেখানো, তাহলে এটি পারফরম্যান্স উন্নত করতে সহায়ক হতে পারে।

tooltip: {
  shared: false, // একাধিক পয়েন্টের উপর টুলটিপ না দেখানো
  pointFormat: '{point.y}' // শুধুমাত্র পয়েন্ট মান দেখানো
}

7. Responsiveness এবং redraw অপটিমাইজেশন

Highcharts এ আপনি যখন একটি চার্টে রিসাইজ করবেন, তখন সেটি redraw কার্যকলাপের মাধ্যমে চার্ট রেন্ডার করবে। যদি একাধিক চার্ট থাকে এবং বারবার redraw করতে হয়, তাহলে throttling বা debouncing ব্যবহার করা যেতে পারে।

chart: {
  events: {
    redraw: function () {
      console.log('Chart is redrawing');
    }
  }
}

এছাড়া, আপনি setTimeout বা requestAnimationFrame এর মতো থ্রটলিং পদ্ধতি ব্যবহার করতে পারেন।


8. CSS রেন্ডারিং অপ্টিমাইজেশন

Highcharts যখন ডেটা রেন্ডার করে তখন কিছু CSS প্রোপার্টি যেমন box-shadow, border, ইত্যাদি অতিরিক্ত লোড সৃষ্টি করতে পারে। এটি পারফরম্যান্সে নেতিবাচক প্রভাব ফেলতে পারে। তাই এই ধরনের CSS স্টাইল কম ব্যবহার করা উচিত।


সারাংশ

Highcharts এ পারফরম্যান্স টিউনিং একটি গুরুত্বপূর্ণ বিষয়, বিশেষ করে বড় ডেটাসেটের ক্ষেত্রে। এখানে কিছু প্রধান টিপস দেয়া হলো:

  • Zoom এবং Panning সক্ষম করার জন্য ডেটা কমানো।
  • WebGL এবং Canvas রেন্ডারিং ব্যবহারের মাধ্যমে চার্টের রেন্ডারিং উন্নত করা।
  • Data clustering বা point markers কমিয়ে পারফরম্যান্স বৃদ্ধি করা।
  • Tooltip customization এবং responsiveness অপ্টিমাইজেশন করে দ্রুত রেসপন্স পাওয়া যায়।

এই টিপসগুলো ব্যবহার করে Highcharts এ বড় ডেটাসেট পরিচালনা করা এবং চার্টের পারফরম্যান্স উন্নত করা সম্ভব।

Content added By
Promotion